package com.shell.customer.base.rx;

import com.shell.bee.base.utils.StringUtil;
import com.shell.customer.base.MsgEvent;
import com.shell.customer.base.vo.Message;
import com.shell.framework.rx.OnErrorNotImplementedSubscriber;
import com.shell.framework.utils.MessageSender;
import java.util.List;
import org.springframework.stereotype.Component;

@Component
public class SendMsgSubscriber extends OnErrorNotImplementedSubscriber<MsgEvent> {
	public void onApplicationEvent(MsgEvent event) {
		List<Message> messages = event.getMessages();
		if (messages == null) {
			return;
		}
		for (Message msg : messages) {
			if (StringUtil.notTrimEmpty(msg.getRoleCode())) {
				MessageSender.sendMessageByRoleCode(msg.getRoleCode(), msg.getSenderId(), msg.getTemplate(),
						msg.getBaseKeyWord(), msg.getReceiverEntId());
			}
			if (StringUtil.notTrimEmpty(msg.getReceiverId())) {
				MessageSender.sendMessage(msg.getReceiverId(), msg.getSenderId(), msg.getTemplate(),
						msg.getBaseKeyWord());
			}
			if (StringUtil.notTrimEmpty(msg.getReceiverPhone())) {
				MessageSender.sendMessageToPhone(msg.getReceiverPhone(), msg.getSenderId(), msg.getTemplate(),
						msg.getBaseKeyWord());
			}
			if ((StringUtil.empty(msg.getRoleCode())) && (StringUtil.empty(msg.getReceiverId()))
					&& (StringUtil.empty(msg.getReceiverPhone()))) {
				MessageSender.sendMessageByTmpl(msg.getSenderId(), msg.getTemplate(), msg.getBaseKeyWord(),
						msg.getReceiverEntId());
			}
		}
	}
}
